<?php
	if (defined('PARAMETRO_1')) {
		$urlCurso			=	constant('PARAMETRO_1');
		$cursoVisualizado	=	new Curso(null, $urlCurso);
		$idUsuario			=	$this->getUsuario() == null ? null : $this->getUsuario()->getIdUsuario();
		
		if ($cursoVisualizado->getIdCurso() != null) {
			
			$_GLOBALS['idCurso'] = $cursoVisualizado->getIdCurso();
			
			Historico::inserir($idUsuario, $_GLOBALS['idCurso'], $GLOBALS['_PARAMETROS']);
			
			//Verifica se é possivel mudar a visualizacao do curso
			$arrayCursos	=	$this->getUsuario() != null ? $this->getUsuario()->getCursos() : array();
			
			if (($this->getUsuario() != null && $this->getUsuario()->getTipoCadastro() == 'Administrador') || (isset($arrayCursos[$cursoVisualizado->getIdCurso()]) && $arrayCursos[$cursoVisualizado->getIdCurso()]['participacao'] == 'Professor')) {
				$this->getSmarty()->assign('possivelMudarVisualizacao', true);
				
				if (isset($_SESSION['constructore']['curso']) && isset($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]) && isset($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'])) {
					$visualizacaoAtual	=	$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'];
				}
				else {
					$visualizacaoAtual	=	$this->getUsuario()->getTipoCadastro() == 'Administrador' ? 'Administrador' : $arrayCursos[$curso->getIdCurso()]['participacao'];
				}
				$this->getSmarty()->assign('tipoUsuario', $this->getUsuario()->getTipoCadastro());
				$this->getSmarty()->assign('visualizacaoAtual', $visualizacaoAtual);
			}
			else {
				$visualizacaoAtual	=	isset($arrayCursos[$cursoVisualizado->getIdCurso()]) ? $arrayCursos[$cursoVisualizado->getIdCurso()]['participacao'] : 'Visitante';
			}
			
			//Trata esse post aqui para não precisar tratar em todas as páginas do curso
			if ($_POST) {
				if (isset($_POST['btnMudarVisualizacao'])) {
					$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] = $_POST['visualizacaoAtual'];
					redireciona($_SESSION['constructore']['URLOrigem']);
				}
			}
			
			//Pega a lista de constantes de localizacao definidas atualmente para passar para o modelo
			$constantes	=	get_defined_constants(true);
			$parametros	=	array();
			foreach ($constantes['user'] as $constante => $valor) {
				if (preg_match('/^PARAMETRO_[0-9]+$/', $constante)) {
					$parametros[$constante]	=	$valor;
				}
			}
			
			//Usa os parametros para ajudar a montar o menu principal junto da funcao do usuario
			$this->getSmarty()->assign('arrayMenu', $cursoVisualizado->configuraMenu($parametros, $visualizacaoAtual));
			
			//Passa para a vista o link para a pagina inicial do curso
			$linkInicialCurso	=	montaLink(array('curso', $cursoVisualizado->getUrlCurso()));
			$this->getSmarty()->assign('linkInicialCurso', $linkInicialCurso);
			
			//Verifica se o curso esta apagado para avisar ao usuario
			if ($cursoVisualizado->getApagado() && !$_POST) {
				adicionaMensagem(texto('MENSAGEM_CURSO_APAGADO'), 'erro');
			}
			
			if (defined('PARAMETRO_2') && constant('PARAMETRO_2') != 'editar'){
				if (isset ($_SESSION['constructore']['curso']['modoEdicao'])) {
					unset($_SESSION['constructore']['curso']['modoEdicao']);
				}
				if ($cursoVisualizado->permissaoAcesso($idUsuario, $parametros)) {
					$this->executaAcao(constant('PARAMETRO_2'));
				}
				else {
					redireciona(array('404'));
				}
				
			}
			else {
				//FICA DENTRO DA APRESENTACAO DO CURSO
				if ($_POST) {
					if (isset($_POST['btnAtivarEdicao'])) {
						redireciona(array('curso', $urlCurso, 'editar'));
					}
					if (isset($_POST['btnCancelarEdicao'])) {
						adicionaMensagem(texto('MENSAGEM_MODIFICACOES_CANCELADAS'));
						redireciona(array('curso', $urlCurso));
					}
					if (isset($_POST['btnSalvarEdicao'])) {
						//CONFIGURACOES GERAIS
						$strTitulo		=	pegaPost('strTitulo');
						$fileLogo		=	isset($_FILES['fileLogo']) ? $_FILES['fileLogo'] : null;
						$removerLogo	=	$cursoVisualizado->getLogo() != '' ? (isset($_POST['checkRemoverLogo']) || $fileLogo['name'] != '' ? true : false) : false;
							
						//INFORMACOES DO CURSO
						$strPublicoAlvo			=	configuraHTMLFormatado(pegaPost('strPublicoAlvo'));
						$strObjetivos			=	configuraHTMLFormatado(pegaPost('strObjetivos'));
						$strEmenta				=	configuraHTMLFormatado(pegaPost('strEmenta'));
						$strOrientacoes			=	configuraHTMLFormatado(pegaPost('strOrientacoes'));
						$strCronograma			=	configuraHTMLFormatado(pegaPost('strCronograma'));
							
						//FERRAMENTAS DE CONSULTA
						$strBibliografia	=	pegaPost('strBibliografia');
						$strGlossario		=	pegaPost('strGlossario');
						$strLinks			=	pegaPost('strLinks');
							
						//FERRAMENTAS DE COMUNICACAO
						$strAvisos			=	pegaPost('strAvisos');
						$strBlog			=	pegaPost('strBlog');
						$strChat			=	pegaPost('strChat');
						$strEmail			=	pegaPost('strEmail');
						$strForum			=	pegaPost('strForum');
							
						if (Curso::editar($cursoVisualizado->getIdCurso(), 'ativarEdicao', array(	'strTitulo' => $strTitulo,
																								'fileLogo' => $fileLogo,
																								'removerLogo' => $removerLogo,
																								'logoAnterior' => $cursoVisualizado->getLogo(),
																								'strPublicoAlvo' => $strPublicoAlvo,
																								'strObjetivos' => $strObjetivos,
																								'strEmenta' => $strEmenta,
																								'strOrientacoes' => $strOrientacoes,
																								'strCronograma' => $strCronograma,
																								'strBibliografia' => $strBibliografia,
																								'strGlossario' => $strGlossario,
																								'strLinks' => $strLinks,
																								'strAvisos' => $strAvisos,
																								'strBlog' => $strBlog,
																								'strChat' => $strChat,
																								'strEmail' => $strEmail,
																								'strForum' => $strForum))) {
						adicionaMensagem(texto('MENSAGEM_SUCESSO_SALVAR_EDICAO_CURSO'));
						redireciona(array('curso', $cursoVisualizado->getUrlCurso()));
						}
						else {
							$_SESSION['constructore']['curso']['modoEdicao']['strAvisos']		=	$strAvisos;
							$_SESSION['constructore']['curso']['modoEdicao']['strBlog']			=	$strBlog;
							$_SESSION['constructore']['curso']['modoEdicao']['strChat']			=	$strChat;
							$_SESSION['constructore']['curso']['modoEdicao']['strEmail']		=	$strEmail;
							$_SESSION['constructore']['curso']['modoEdicao']['strForum']		=	$strForum;
							$_SESSION['constructore']['curso']['modoEdicao']['strBibliografia']	=	$strBibliografia;
							$_SESSION['constructore']['curso']['modoEdicao']['strGlossario']	=	$strGlossario;
							$_SESSION['constructore']['curso']['modoEdicao']['strLinks']		=	$strLinks;
							$_SESSION['constructore']['curso']['modoEdicao']['strTitulo']		=	$strTitulo;
							$_SESSION['constructore']['curso']['modoEdicao']['strPublicoAlvo']	=	stripslashes($strPublicoAlvo);
							$_SESSION['constructore']['curso']['modoEdicao']['strObjetivos']	=	stripslashes($strObjetivos);
							$_SESSION['constructore']['curso']['modoEdicao']['strEmenta']		=	stripslashes($strEmenta);
							$_SESSION['constructore']['curso']['modoEdicao']['strOrientacoes']	=	stripslashes($strOrientacoes);
							$_SESSION['constructore']['curso']['modoEdicao']['strCronograma']	=	stripslashes($strCronograma);
							adicionaMensagem(texto('MENSAGEM_ERRO_SALVAR_EDICAO_CURSO'), 'erro');
							redireciona(array('curso', $cursoVisualizado->getUrlCurso(), 'editar'));
						}
					}
				}
				
				$modoEdicao	=	(defined('PARAMETRO_2') && constant('PARAMETRO_2') == 'editar') ? true : false;
				$this->getSmarty()->assign_by_ref('cursoVisualizado', $cursoVisualizado);
				$this->getSmarty()->assign('TITULO_BARRA_NAVEGADOR', texto('TITULO_BARRA_NAVEGADOR', array($cursoVisualizado->getNome())));
				$this->getSmarty()->assign('TEXTO_NAVEGACAO', texto('AREA_APRESENTACAO_DO_CURSO'));
				if ($this->getUsuario() != null) {
					$cursosUsuario	=	$this->getUsuario()->getCursos();
					if (!isset($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'])) {
						if (isset($cursosUsuario[$cursoVisualizado->getIdCurso()]) && $cursosUsuario[$cursoVisualizado->getIdCurso()]['participacao'] == "Professor") {
							$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] = 'Professor';
						}
						else {
							if (isset($cursosUsuario[$cursoVisualizado->getIdCurso()]) && $cursosUsuario[$cursoVisualizado->getIdCurso()]['participacao'] == "Aluno") {
								if ($cursosUsuario[$cursoVisualizado->getIdCurso()]['autorizado'])
									$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] = 'Aluno';
								else
									$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] = 'AlunoNaoAutorizado';
							}
							else {
								if (isset($cursosUsuario[$cursoVisualizado->getIdCurso()]) && $cursosUsuario[$cursoVisualizado->getIdCurso()]['participacao'] == "Tutor") {
									$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] = 'Tutor';
								}
								else {
									if ($this->getUsuario()->getTipoCadastro() == "Administrador" ) {
										$_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] = 'Administrador';
									}
								}
							}
						}
					}
					
					if (($cursoVisualizado->getLiberado() && !$cursoVisualizado->getApagado()) || (isset($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao']) && ($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] == "Professor" || $_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] == "Administrador" ))) {
						if (isset($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'])){
							//ALUNO INSCRITO, PROFESSOR OU ADMINISTRADOR
							
							if (($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] == "Aluno" && comparaDatasString($cursoVisualizado->getDataInicioCurso(), date("Y-m-d", time())) >= 0) || $_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] == "Tutor") {
								//Variaveis para Edicao do Curso
								//Se o Aluno tentar editar o curso, ele e rediceionado pra 404								
								if ($modoEdicao) {
									redireciona(array("404"));
								}
								$possivelEditar = 	false;
							}
							else {
								if (($_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] == "Aluno" && comparaDatasString($cursoVisualizado->getDataInicioCurso(), date("Y-m-d", time())) == -1) ||  $_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao'] == "AlunoNaoAutorizado"){
									$possivelEditar = 	false;
									//SE A DATA DE INICIO NAO TIVER CHEGADO O ALUNO, MESMO INSCRITO, AINDA NAO PODE ENTRAR NO CURSO
								}
								else {
									$possivelEditar = 	true;
									if (!$modoEdicao) {
										//Se nao esta no modo Edição desseta a SESSION caso ela esteja setada
										if (isset ($_SESSION['constructore']['curso']['modoEdicao']))
											unset($_SESSION['constructore']['curso']['modoEdicao']);
									}
									else {
										//Se está no modo Edição passa todas as informacoes do curso para a SESSION caso ela não esteja setada
										if (!isset ($_SESSION['constructore']['curso']['modoEdicao'])){
											$_SESSION['constructore']['curso']['modoEdicao']['strAvisos']		=	$cursoVisualizado->getExibirAvisos();
											$_SESSION['constructore']['curso']['modoEdicao']['strBlog']			=	$cursoVisualizado->getExibirBlog();
											$_SESSION['constructore']['curso']['modoEdicao']['strChat']			=	$cursoVisualizado->getExibirChat();
											$_SESSION['constructore']['curso']['modoEdicao']['strEmail']		=	$cursoVisualizado->getExibirEmail();
											$_SESSION['constructore']['curso']['modoEdicao']['strForum']		=	$cursoVisualizado->getExibirForum();
											$_SESSION['constructore']['curso']['modoEdicao']['strBibliografia']	=	$cursoVisualizado->getExibirBibliografia();
											$_SESSION['constructore']['curso']['modoEdicao']['strGlossario']	=	$cursoVisualizado->getExibirGlossario();
											$_SESSION['constructore']['curso']['modoEdicao']['strLinks']		=	$cursoVisualizado->getExibirLinks();
											$_SESSION['constructore']['curso']['modoEdicao']['strTitulo']		=	$cursoVisualizado->getNome();
											$_SESSION['constructore']['curso']['modoEdicao']['strPublicoAlvo']	=	stripslashes($cursoVisualizado->getPublicoAlvo());
											$_SESSION['constructore']['curso']['modoEdicao']['strObjetivos']	=	stripslashes($cursoVisualizado->getObjetivos());
											$_SESSION['constructore']['curso']['modoEdicao']['strEmenta']		=	stripslashes($cursoVisualizado->getEmenta());
											$_SESSION['constructore']['curso']['modoEdicao']['strOrientacoes']	=	stripslashes($cursoVisualizado->getOrientacoes());
											$_SESSION['constructore']['curso']['modoEdicao']['strCronograma']	=	stripslashes($cursoVisualizado->getCronograma());
										}
										
									}
								}
							}
							if ($this->getUsuario()->getTipoCadastro() == "Administrador" || (isset($cursosUsuario[$cursoVisualizado->getIdCurso()]) && $cursosUsuario[$cursoVisualizado->getIdCurso()]['participacao'] == "Professor") ){
								$possivelMudarVisualizacao	=	true;
								$this->getSmarty()->assign('tipoUsuario', $this->getUsuario()->getTipoCadastro());
								$this->getSmarty()->assign('visualizacaoAtual', $_SESSION['constructore']['curso'][$cursoVisualizado->getUrlCurso()]['tipoVisualizacao']);
								$this->getSmarty()->assign('possivelMudarVisualizacao', $possivelMudarVisualizacao);
							}
							//$this->getSmarty()->assign('arrayMenu', $arrayMenu);
							$this->getSmarty()->assign('possivelEditar', $possivelEditar);
							$this->getSmarty()->assign('modoEdicao', $modoEdicao);
						}
					}
					else {
						redireciona(array('404'));
					}
				}
				else {
					if ($cursoVisualizado->getLiberado()  && !$cursoVisualizado->getApagado()){
						//USUARIO NAO LOGADO E CURSO LIBERADO
						if (($cursoVisualizado->getConteudoLivre() == "Sim"  && comparaDatasString($cursoVisualizado->getDataInicioCurso(), date("Y-m-d", time())) == 1) || ($cursoVisualizado->getConteudoLivre() == "Após o Término" && comparaDatasString($cursoVisualizado->getDataTerminoCurso(), date("Y-m-d", time())) == 1)) {
							//CURSO DE CONTEUDO LIVRE
							//TODO Curso de conteudo Livre
						}
						else {
							//CURSO DE CONTEUDO FECHADO
							//TODO Logar no curso para continuar
							redireciona(array("404"));
						}
					}
					else {
						//USUARIO NAO LOGADO E CURSO NAO LIBERADO
						redireciona(array('404'));
					}
				}
				$this->exibir("inicial");
			}
			
			//Usa os parametros para ajudar a montar o menu principal junto da funcao do usuario
			$this->getSmarty()->assign('arrayMenu', $cursoVisualizado->configuraMenu($parametros, $visualizacaoAtual));
		}
		else {
			redireciona(array('404'));
		}
	}
	else {
		redireciona(array('404'));
	}
	
?>